## Omelet
Приложение демонстрирующее работу с CRUD базы данных, аутентификацию и идентификацию новых пользователей, постраничное разделение приложения с помощью React Router и работу с паттернами проектирования веб-приложений. [Демо приложения.](https://omelet-app.herokuapp.com/)
### Как это работает
Пользовательский интерфейс написан с помощью библиотеки KVision и фреймворка Kotlin/JS.\
Серверная часть использует программный интерфейс KVision для работы с Spring Boot. Приложение написано на мультиплатформенной архитектуре с использованием разделяемого кода для пользовательского интерфейса и серверной части, при сборке проекта этот код будет автоматически скампилирован в JSON-RPC.\
Серверная часть приложения базируется на Kotlin coroutine с использованием Spring Webflux, работая полностью асинхронно. Приложение использует СУБД H2.
### Запуск приложения
После сборки приложения с помощью системы сборки Gradle, необходимо воспользоваться следующими командами:
* `./gradlew backendRun` - запускает сервер Spring Boot, слушающий порт `:8080`; 
* `./gradlew -t frontendRun` - запускает webpack сервер, слушающий порт `:3000`.

Приложение расположится по адресу:  http://localhost:3000.
### Сборка fullstack пакета
Команда `./gradlew jar`собирает JAR файл включающий в себя всё для работы серверной части и пользовательского интерфейса приложения в папке `build/libs/omelet-1.0-SNAPSHOT.jar`. 
